package cn.cool.types.design.framework.tree;

/**
 * 策略处理器：定义该节点的行为，即该节点要做什么业务。
 * @param <T> 入参
 * @param <D> 上下文
 * @param <R> 出参
 */
public interface StrategyHandler<T, D, R> {
    StrategyHandler DEFAULT = (T, D) -> null;

    /**
     * 处理功能
     * @param requestParameter 入参
     * @param dynamicContext 动态上下文
     */
    R apply(T requestParameter, D dynamicContext) throws Exception;
}
